const { User } = require("./../models");
const { UUID } = require("../core/contains");
// 生成token
const jwt = require("jsonwebtoken");
// 登录接口
exports.login = async (req, res, next) => {
  try {
    const { username, password } = req.body;
    // 处理数据
    let user = await User.findOne({ username });
    // 如果有就登录
    if (user) {
      if (password !== user.password) {
        return res.status(400).json({
          error: "密码不正确",
        });
      }
    } else {
      // 如果没有就注册 创建并保存到数据库中
      user = await new User(req.body).save();
    }

    // 有用户，密码正确
    res.status(200).send({
      user: {
        username: user.username,
        token: jwt.sign(
          {
            userId: user._id,
          },
          UUID,
          {
            expiresIn: "24h",
          }
        ), // 用户身份
      },
    });
  } catch (error) {
    // 交给后面的错误处理中间件统一处理错误
    next(error);
  }
};
